待望のアップデートが来た! Amazon FSx for Windows File Serverでシャドウコピーが使えるようになりました!
はじめに
おはようございます、加藤です。Amazon FSx for Windows File Server(以降、FSx for Win)がMicrosoft Windows シャドウコピーに対応しました!
今までは、FSx for Winはバックアップには対応していましたが、全体ののスケジュール or 任意バックアップのみで、リストアする際にはバックアップを元にFSx for Winを新規作成して、必要なファイルを取り出して...という手順が必要でした。バックアップの機能があるのは有り難いのですが、エンドユーザーが誤操作で、ファイルを上書き・削除してしまった際の対策としては、リストアコストが大きすぎて現実的ではありませんでした。
シャドウコピーであれば、エンドユーザーが簡単な操作でファイルをリストアする事が可能になります!
注意
シャドウコピーが使えるのは日本時間で、2019年07月31日(水) 23:00以降に作成された、FSx for Winのみです。
Windows shadow copies are only available on Amazon FSx for Windows File Server file systems created on or after July 31, 2019, 7:00 AM PDT.
Working with Shadow Copies - Amazon FSx for Windows File Server
既に、FSx for Winを利用中で、シャドウコピーを使いたい場合は、新規で作成し、ファイル移行を行う必要があります。
やってみた
準備
下記を行います。
- AWS Directory Service(AWS Managed Microsoft AD)のセットアップ
- ドメインに参加した、Windows Server on EC2のセットアップ
- FSx for Winのセットアップ
上から同期で進め、EC2のセットアップ時にはドメイン結合ディレクトリ機能を使って、ドメイン参加させるのが便利です。
FSxの作成が初めての場合は、こちらのブログが参考になります。
ファイルサーバーと接続
Windows Serverにリモートデスクトップ接続します。この際に、ADの管理者権限ユーザーでログインしましょう。
今回の環境の場合は、ドメインをrkato.classmethod.infoで作成したので、[email protected]でログインしました。
ネットワークドライブとしてマウントし、正常にマウントできているかを確認します。
New-PSDrive -Persist -Name P -PSProvider FileSystem -Root \\<FSxFileSystem-DNS-Name>\share Get-PSDrive
このように表示されていれば、正しくマウントされています。
Name Used (GB) Free (GB) Provider Root CurrentLocation ---- --------- --------- -------- ---- --------------- Alias Alias C 14.27 35.73 FileSystem C:\ Users\Admin Cert Certificate \ Env Environment Function Function HKCU Registry HKEY_CURRENT_USER HKLM Registry HKEY_LOCAL_MACHINE P 0.13 299.87 FileSystem \\<FSxFileSystem-DNS-Name>\share Variable Variable WSMan WSMan
シャドウコピーの有効化と容量の設定
Invoke-Command -ComputerName <FSxFileSystem-DNS-Name> -ConfigurationName FSxRemoteAdmin -scriptblock {Set-FsxShadowStorage -Default}
このように表示されていれば、正しく設定されています。
FSx Shadow Storage Configuration AllocatedSpace : 0 UsedSpace : 0 MaxSpace : 32530536858 PSComputerName : <FSxFileSystem-DNS-Name> RunspaceId : d74a60b2-b566-4389-8b4d-be47f15fd7f8
MaxSpaceがシャドウコピーに使用を許可する容量です。デフォルトではディスク容量の100%の使用許可を与えています。
ディスク容量の20%に制限してみましょう。
下記のコマンドを実行する事で、FSx for Winにリモート接続します。
enter-pssession -computername <FSxFileSystem-DNS-Name> -configurationname fsxremoteadmin [/powershell Set-FsxShadowStorage -Maxsize "20%"
32,530,536,858 * 0.2= 6,506,107,371.6
なので、意図したとおりに制限できました。
FSx Shadow Storage Configuration AllocatedSpace UsedSpace MaxSpace -------------- --------- -------- 0 0 65061073715
他にも、バイト単位などで指定を行う事ができます。
- バイト単位: Set-FsxShadowStorage -Maxsize 2500000000
- キロバイト、メガバイト、ギガバイト、またはその他の単位:Set-FsxShadowStorage -Maxsize (2500MB)またはSet-FsxShadowStorage -Maxsize (2.5GB)
- ストレージ全体に対する割合: Set-FsxShadowStorage -Maxsize "20%"
- 未定義: Set-FsxShadowStorage -Maxsize "UNBOUNDED"
exit
コマンドで、リモート接続を解除します。
exit
スケジュールの設定
デフォルトでは、シャドウコピーは自動取得されません。Windows タスクスケジューラの機能を使用して、任意のスケジュールでシャドウコピーを取得します。
タイムゾーン設定に注意する必要があります。今の作業で使用しているWindows ServerはUTCなので、タイムゾーンをJSTに変更し、スケジュールを作成します。
Set-TimeZone -Name 'Tokyo Standard Time' $trigger1 = new-scheduledTaskTrigger -weekly -DaysOfWeek Monday,Tuesday,Wednesday,Thursday,Friday -at 06:00 $trigger2 = new-scheduledTaskTrigger -weekly -DaysOfWeek Monday,Tuesday,Wednesday,Thursday,Friday -at 18:00 echo $trigger1 echo $trigger2
StartBoundaryに、意図した時間が、UTCで表示されればOKです。
PS C:\Users\Admin> echo $trigger1 Enabled : True EndBoundary : ExecutionTimeLimit : Id : Repetition : StartBoundary : 2019-08-06T21:00:00Z DaysOfWeek : 62 RandomDelay : WeeksInterval : 1 PSComputerName : PS C:\Users\Admin> echo $trigger2 Enabled : True EndBoundary : ExecutionTimeLimit : Id : Repetition : StartBoundary : 2019-08-07T09:00:00Z DaysOfWeek : 62 RandomDelay : WeeksInterval : 1 PSComputerName :
invoke-command -ComputerName <FSxFileSystem-DNS-Name> -ConfigurationName FSxRemoteAdmin -scriptblock { set-fsxshadowcopyschedule -scheduledtasktriggers $Using:trigger1,$Using:trigger2 -Confirm:$false }
このように表示されていれば、正しく設定されています。
Start Time : 2019-08-06T21:00:00+00:00 Days of Week : Monday,Tuesday,Wednesday,Thursday,Friday WeeksInterval : 1 PSComputerName : fs-0730d1de6255e869c.rkato.classmethod.info RunspaceId : 5bbcc1a9-7657-41a3-a75d-81fb8b68310a Start Time : 2019-08-07T09:00:00+00:00 Days of Week : Monday,Tuesday,Wednesday,Thursday,Friday WeeksInterval : 1 PSComputerName : fs-0730d1de6255e869c.rkato.classmethod.info RunspaceId : 5bbcc1a9-7657-41a3-a75d-81fb8b68310a
リストア手順
準備
マウントしたPドライブ配下に、適当なテキストファイルを作成します。
cd P: echo "Hello World!" >> ShadowCopyTest.txt
手動でシャドウコピー取得を実行します。
invoke-command -ComputerName <FSxFileSystem-DNS-Name> -ConfigurationName FSxRemoteAdmin -scriptblock { New-FsxShadowCopy }
ファイルに追記します。
echo "Hello World!" >> ShadowCopyTest.txt
リストア
エクスプローラーで、Pドライブを開き、ファイルを右クリック、プロパティの順に選択します。
以前のバージョンタブを開くと、シャドウコピーが取得された日時が表示されています。
日時の行を選択した状態で、開くを選択すると、その日時のファイルを確認できます。復元を選択すると、現在のファイルに、その日時のファイルを上書きします。
参考元
- Working with Shadow Copies - Amazon FSx for Windows File Server
- Managing Shadow Copies - Amazon FSx for Windows File Server
あとがき
今まで、FSx for Winを利用をためらう障壁の1つとして、シャドウコピーができないという物がありました。FSx for Winを使っている方なら、誰もが嬉しいアップデートだと思います。
以上でした!